package day16.xianchengdemo.chuangjian;
//创建方式2，搞实现类实现Runnable接口，重写run方法
public class demo2
{ //public static int sum=0;
    public static void main(String[] args)
    {

       Runnable re=new MyRunnable();//这是一个线程任务对象，不是线程对象，不能调start。
        Thread td=new Thread(re);//返回一个线程对象
             td.start();


             Thread td2=new Thread(new Runnable()
             {
                 public void run()
                 {
                     for(int i=0;i<5;i++)
                     {
                         System.out.println("子线程2的输出："+i);
                     }
                 }
             });
             td2.start();
             new Thread(new Runnable()
        {
            public void run()
            {
                for(int i=0;i<5;i++)
                {
                    System.out.println("子线程3的输出："+i);
                }
            }
        }).start();




         for(int i = 0; i < 5;i++)
         {
             System.out.println("主线程的输出: " + i);
         }


         //System.out.println("子线程和主线程的输出之和为："+sum);
         //有可能 出现System.out.println("子线程和主线程的输出之和为："+sum);
        // 主线程先输出了这句话，但是子线程的循环还没跑完这种情况。主线程和子线程不一定谁先跑完

    }
}
//线程任务类实现Runnable接口,优点是多实现，不是单继承。但是需要多搞一个线程任务对象
class MyRunnable  implements Runnable
{
    public void run()//必须是void返回
    {
        for(int i=0;i<5;i++)
        {
            System.out.println("子线程1的输出："+i);
           // demo2.sum+=i;
        }

    }
}
